package cn.com.blueInfo.bpm.number.service;

import cn.com.blueInfo.bpm.number.request.NumberLogDTO;
import cn.com.blueInfo.bpm.number.response.NumberLogVO;
import cn.com.blueInfo.utils.result.ResultInfo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * 编号规则日志 业务服务类
 * @author suxch
 * @since 2025-08-24 01:39:05
 */
public interface NumberLogService {

    /**
     * 新增编号规则日志
     * @param numberLogDTO 编号规则日志参数
     */
    ResultInfo<Integer> addNumberLog(NumberLogDTO numberLogDTO);

    /**
     * 批量新增编号规则日志
     * @param numberLogDTOList 编号规则日志参数列表
     */
    ResultInfo<Integer> batchAddNumberLog(List<NumberLogDTO> numberLogDTOList);

    /**
     * 删除编号规则日志
     * @param numberLogId 编号规则日志ID
     */
    ResultInfo<Integer> removeNumberLog(Long numberLogId);

    /**
     * 批量删除编号规则日志
     * @param numberLogIdList 编号规则日志ID列表
     */
    ResultInfo<Integer> batchRemoveNumberLog(List<Long> numberLogIdList);

    /**
     * 更新部分编号规则日志
     * @param numberLogUpdatePartialDTO 编号规则日志参数
     */
    ResultInfo<Integer> modifyNumberLogPartial(NumberLogDTO.UpdatePartialDTO numberLogUpdatePartialDTO);

    /**
     * 更新全部编号规则日志
     * @param numberLogDTO 编号规则日志参数
     */
    ResultInfo<Integer> modifyNumberLog(NumberLogDTO numberLogDTO);

    /**
     * 查询一条编号规则日志
     * @param numberLogId 编号规则日志ID
     */
    ResultInfo<NumberLogVO> queryNumberLogById(Long numberLogId);

    /**
     * 分页查询编号规则日志
     * @param numberLogQueryDTO 编号规则日志参数
     */
    ResultInfo<Page<NumberLogVO>> queryNumberLogPage(NumberLogDTO.QueryDTO numberLogQueryDTO);

    /**
     * 根据条件查询 编号规则日志 数量
     * @param numberLogQueryDTO 编号规则日志参数
     */
    ResultInfo<Long> queryNumberLogCount(NumberLogDTO.QueryDTO numberLogQueryDTO);

    /**
     * 根据条件查询 编号规则日志
     * @param numberLogQueryDTO 编号规则日志参数
     */
    ResultInfo<List<NumberLogVO>> queryNumberLogList(NumberLogDTO.QueryDTO numberLogQueryDTO);

}
